home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / GDIPAL.PAK / GLOBALS.H < prev    next >
C/C++ Source or Header  |  1997-05-06  |  9KB  |  241 lines

  1. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  2. // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  3. // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  4. // PARTICULAR PURPOSE.
  5. //
  6. // Copyright (C) 1993-1995  Microsoft Corporation.  All Rights Reserved.
  7. //
  8. // PURPOSE:
  9. //    Contains declarations for all globally scoped names in the program.
  10. //
  11.  
  12. //-------------------------------------------------------------------------
  13. // Product identifier string defines
  14.  
  15. //  **TODO** Change these strings to the name of your application.
  16.  
  17.     #define APPNAME       GDIPal
  18.     #define ICONFILE      GDIPal.ICO
  19.     #define SZAPPNAME     "GDIPal"
  20.     #define SZDESCRIPTION "GDI Palette Example Application"
  21.     #define SZABOUT       "About GDI Palette"
  22.     #define SZVERSION     "Version 4.0"
  23.  
  24. //-------------------------------------------------------------------------
  25. // Functions for handling main window messages.  The message-dispatching
  26. // mechanism expects all message-handling functions to have the following
  27. // prototype:
  28. //
  29. //     LRESULT FunctionName(HWND, UINT, WPARAM, LPARAM);
  30.  
  31. // **TODO**  Add message-handling function prototypes here.  Be sure to
  32. //           add the function names to the main window message table in
  33. //           gdipal.c.
  34.  
  35. LRESULT MsgCommand         (HWND, UINT, WPARAM, LPARAM); // gdipal.c
  36. LRESULT MsgDestroy         (HWND, UINT, WPARAM, LPARAM);
  37. LRESULT MsgCreate          (HWND, UINT, WPARAM, LPARAM);
  38. LRESULT MsgSize            (HWND, UINT, WPARAM, LPARAM);
  39. LRESULT MsgPaletteChanged  (HWND, UINT, WPARAM, LPARAM);
  40. LRESULT MsgQueryNewPalette (HWND, UINT, WPARAM, LPARAM);
  41. LRESULT MsgNotify          (HWND, UINT, WPARAM, LPARAM); // toolbar.c
  42. LRESULT MsgTimer           (HWND, UINT, WPARAM, LPARAM); // statbar.c
  43. LRESULT MsgMenuSelect      (HWND, UINT, WPARAM, LPARAM);
  44.  
  45.  
  46. //-------------------------------------------------------------------------
  47. // Functions for handling main window commands--ie. functions for
  48. // processing WM_COMMAND messages based on the wParam value.
  49. // The message-dispatching mechanism expects all command-handling
  50. // functions to have the following prototype:
  51. //
  52. //     LRESULT FunctionName(HWND, WORD, WORD, HWND);
  53.  
  54. // **TODO**  Add message-handling function prototypes here.  Be sure to
  55. //           add the function names to the main window command table in
  56. //           gdipal.c.
  57.  
  58. LRESULT CmdFileNew    (HWND, WORD, WORD, HWND);     // gdipal.c
  59. LRESULT CmdRefresh    (HWND, WORD, WORD, HWND);
  60. LRESULT CmdExit       (HWND, WORD, WORD, HWND);
  61.  
  62. LRESULT CmdAbout      (HWND, WORD, WORD, HWND);     // about.c
  63.  
  64. LRESULT CmdInfo       (HWND, WORD, WORD, HWND);     // infodlg.c
  65.  
  66. LRESULT CmdDrawMode   (HWND, WORD, WORD, HWND);     // client.c
  67. LRESULT CmdFill       (HWND, WORD, WORD, HWND);
  68. LRESULT CmdCreatePen  (HWND, WORD, WORD, HWND);
  69. LRESULT CmdCreateBrush(HWND, WORD, WORD, HWND);
  70.  
  71.  
  72. //-------------------------------------------------------------------------
  73. // Global function prototypes.
  74.  
  75. // **TODO**  Add global function prototypes here.
  76.  
  77. BOOL    InitApplication(HINSTANCE, int);
  78. BOOL    CenterWindow(HWND, HWND);
  79.  
  80. HWND    CreateClientWindow(HWND);
  81. VOID    ClientNewDrawing(VOID);
  82.  
  83.     // Callback functions.  These are called by Windows.
  84.  
  85. // **TODO**  Add new callback function prototypes here.
  86.  
  87. LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
  88. LRESULT CALLBACK ClientWndProc(HWND, UINT, WPARAM, LPARAM);
  89.  
  90.  
  91. //-------------------------------------------------------------------------
  92. // Command ID definitions.  These definitions are used to associate menu
  93. // items with commands.
  94.  
  95. // **TODO**  Add IDs for all menu commands here.  Be sure that the IDs you
  96. //           add are also added to the main window command table in gdipal.c
  97. //           and the menu statements in the resource file.
  98.  
  99. // File menu
  100. #define IDM_FILEMENU    1000
  101. #define IDM_FILENEW     1001
  102. #define IDM_FILEOPEN    1002
  103. #define IDM_FILESAVE    1003
  104. #define IDM_FILESAVEAS  1004
  105. #define IDM_FILECLOSE   1005
  106. #define IDM_FILEPRINT   1006
  107. #define IDM_FILEPAGESU  1007
  108. #define IDM_FILEPRINTSU 1008
  109. #define IDM_EXIT        1009
  110.  
  111. // Info menu
  112. #define IDM_INFO        1050
  113.  
  114. // Edit menu
  115. #define IDM_EDITMENU    1100
  116. #define IDM_EDITUNDO    1101
  117. #define IDM_EDITCUT     1102
  118. #define IDM_EDITCOPY    1103
  119. #define IDM_EDITPASTE   1104
  120. #define IDM_EDITCLEAR   1105
  121.  
  122. // Draw menu
  123. #define IDM_DRAWMENU    1200
  124. #define IDM_PIXEL       1201
  125. #define IDM_LINE        1202
  126. #define IDM_RECT        1203
  127. #define IDM_ELLIPSE     1204
  128. #define IDM_BEZIER      1205
  129. #define IDM_FILL        1206
  130. #define IDM_NOFILL      1207
  131. #define IDM_CREATEPEN   1208
  132. #define IDM_CREATEBRUSH 1209
  133. #define IDM_REFRESH     1210
  134.  
  135. // Help menu
  136. #define IDM_HELPMENU    1300
  137. #define IDM_ABOUT       1301
  138.  
  139.  
  140. //-------------------------------------------------------------------------
  141. // String Table ID definitions.
  142.  
  143. #define IDS_APPNAME     1
  144. #define IDS_DESCRIPTION 2
  145.  
  146. //-------------------------------------------------------------------------
  147. //  About dialog defines.
  148.  
  149. #define IDD_VERFIRST    100
  150. #define IDD_VERLAST     104
  151.  
  152.  
  153. //-------------------------------------------------------------------------
  154. // Global variable declarations.
  155.  
  156. extern HINSTANCE hInst;          // The current instance handle
  157. extern char      szAppName[];    // The name of this application
  158. extern char      szTitle[];      // The title bar text
  159. extern HWND      hWndClient;     // The Client window
  160.  
  161. // palette-related globals
  162. extern HPALETTE  hPalette;       // App's logical palette
  163. extern BOOL      bPalDevice;     // palette device flag
  164.  
  165. // **TODO**  For NON-MDI applications, uncomment line 1 below and comment
  166. //           line 2.  For MDI applications, uncomment line 2 below, comment
  167. //           line 1, and then define hwndMDIClient as a global variable in
  168. //           INIT.C
  169. #define hwndMDIClient NULL        /* (1) Stub for NON-MDI applications. */
  170. // extern HWND hwndMDIClient;     /* (2) For MDI applications.          */
  171.  
  172.  
  173. //-------------------------------------------------------------------------
  174. // Message and command dispatch infrastructure.  The following type
  175. // definitions and functions are used by the message and command dispatching
  176. // mechanism and do not need to be changed.
  177.  
  178.     // Function pointer prototype for message handling functions.
  179. typedef LRESULT (*PFNMSG)(HWND, UINT, WPARAM, LPARAM);
  180.  
  181.     // Function pointer prototype for command handling functions.
  182. typedef LRESULT (*PFNCMD)(HWND, WORD, WORD, HWND);
  183.  
  184.     // Enumerated type used to determine which default window procedure
  185.     // should be called by the message- and command-dispatching mechanism
  186.     // if a message or command is not handled explicitly.
  187. typedef enum
  188. {
  189.    edwpNone,            // Do not call any default procedure.
  190.    edwpWindow,          // Call DefWindowProc.
  191.    edwpDialog,          // Call DefDlgProc (This should be used only for
  192.                         // custom dialogs - standard dialog use edwpNone).
  193.    edwpMDIChild,        // Call DefMDIChildProc.
  194.    edwpMDIFrame         // Call DefFrameProc.
  195. } EDWP;                // Enumeration for Default Window Procedures
  196.  
  197.     // This structure maps messages to message handling functions.
  198. typedef struct _MSD
  199. {
  200.     UINT   uMessage;
  201.     PFNMSG pfnmsg;
  202. } MSD;                 // MeSsage Dispatch structure
  203.  
  204.     // This structure contains all of the information that a window
  205.     // procedure passes to DispMessage in order to define the message
  206.     // dispatching behavior for the window.
  207. typedef struct _MSDI
  208. {
  209.     int  cmsd;          // Number of message dispatch structs in rgmsd
  210.     MSD *rgmsd;         // Table of message dispatch structures
  211.     EDWP edwp;          // Type of default window handler needed.
  212. } MSDI, FAR *LPMSDI;   // MeSsage Dipatch Information
  213.  
  214.     // This structure maps command IDs to command handling functions.
  215. typedef struct _CMD
  216. {
  217.     WORD   wCommand;
  218.     PFNCMD pfncmd;
  219. } CMD;                 // CoMmand Dispatch structure
  220.  
  221.     // This structure contains all of the information that a command
  222.     // message procedure passes to DispCommand in order to define the
  223.     // command dispatching behavior for the window.
  224. typedef struct _CMDI
  225. {
  226.     int  ccmd;          // Number of command dispatch structs in rgcmd
  227.     CMD *rgcmd;         // Table of command dispatch structures
  228.     EDWP edwp;          // Type of default window handler needed.
  229. } CMDI, FAR *LPCMDI;   // CoMmand Dispatch Information
  230.  
  231.     // Message and command dispatching functions.  They look up messages
  232.     // and commands in the dispatch tables and call the appropriate handler
  233.     // function.
  234. LRESULT DispMessage(LPMSDI, HWND, UINT, WPARAM, LPARAM);
  235. LRESULT DispCommand(LPCMDI, HWND, WPARAM, LPARAM);
  236.  
  237.     // Message dispatch information for the main window
  238. extern MSDI msdiMain;
  239.     // Command dispatch information for the main window
  240. extern CMDI cmdiMain;
  241.